package com.trans.auxiliary;

import java.lang.reflect.Modifier;

/**
 * @Author xwduo
 * @Description //TODO
 * @Date 2023-06-06 14:05
 */
public class TranslatorAbleHelper {

    /**
     * 静态方法是否翻译
     */
    public static boolean staticDisable = true;

    /**
     * native方法是否翻译
     */
    public static boolean nativeDisable = true;

    /**
     * transient方法是否翻译
     */
    public static boolean transientDisable = true;

    /**
     * 空值是否翻译
     */
    public static boolean nullDisable = true;

    /**
     * 是否将对象翻译成Map
     * false : 则需要翻译对象继承TransEntity
     */
    public static boolean tran2Map = true;

    /**
     * 判断值是否要
     * @param modifiers 参数值
     * @return false则表示为禁止，不做翻译
     */
    public static boolean deny(int modifiers){
        boolean deny = false;
        if(staticDisable){
            //静态不可翻译 -
            deny =  Modifier.isStatic(modifiers);
        }
        if(nativeDisable){
            //静态不可翻译 -
            deny = deny ||  Modifier.isNative(modifiers);
        }
        if(transientDisable){
            //静态不可翻译 -
            deny = deny ||  Modifier.isTransient(modifiers);
        }
        return deny;
    }

    /**
     * 判断值是否要
     * @param o 参数值
     * @return false则表示为禁止，不做翻译
     */
    public static boolean nullAble(Object o){
        if( ! nullDisable){
            return true;
        }
        return null != o;
    }
}
